package netty.test19Channelhandler;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageDecoder;

import java.util.List;

public class MyLongDecoder extends ByteToMessageDecoder {

    /**
     * parma1 上下文，
     * parma2,socket中读的数据
     * param3,处理后的数据放到 param3(List)中后可以传给下一个handler
     */
    @Override
    protected void decode(ChannelHandlerContext context, ByteBuf byteBuf, List<Object> list) throws Exception {
        System.out.println("33333333MyServerByteDecoder 执行了");
        //我们这里传过来的数据是8个字节，long类型的,因为我们传的是long类型，如果不够8个字节说明
        //数据还没有完全传输过来，需要等待
        if(byteBuf.readableBytes()>=8){
            list.add(byteBuf.readLong());
        }
    }
}
